package br.ufc.si.managedBean;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;

import modelo.Perfil;
import modelo.Usuario;
import dao.UsuarioDao;

@ManagedBean(name="usuarioBean")
@SessionScoped
public class UsuarioBean {
	
	private boolean mostraDetalhe = false;
	private Usuario usuario;
	private List<Usuario> list;
	
	public UsuarioBean(){
		list = new ArrayList<Usuario>();
		usuario = new Usuario();
		usuario.setPerfil(new Perfil());
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	
	public List<String> getCidades(){
		UsuarioDao dao = new UsuarioDao();
		return dao.pesquisaCidades();
	}

	public String pesquisa(){

		UsuarioDao dao = new UsuarioDao();
		list = dao.pesquisaAvancada(usuario);
		mostraDetalhe = false;
		
		return "/public/pesquisa_usuario?faces-redirect=true";
	}

	public List<Usuario> getList() {
		return list;
	}

	public void setList(List<Usuario> list) {
		this.list = list;
	}
	
	public boolean getListaVazia(){
		return list.size() == 0;
	}
	
	public String detalhes(){

		UsuarioDao dao = new UsuarioDao();
		HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
		
		String email = request.getParameter("email");
		usuario = dao.find(email);
		System.out.println("Detalhes do usuário" + usuario.getPerfil().getFoto());
		mostraDetalhe = true;
		return "/public/detalhe_usuario?faces-redirect=true";
	}

	public boolean isMostraDetalhe() {
		return mostraDetalhe;
	}

	public void setMostraDetalhe(boolean mostraDetalhe) {
		this.mostraDetalhe = mostraDetalhe;
	}

	public UsuarioDao getDao(){
		return new UsuarioDao();
	}
	
}
